/**
 * @file: JugadorVirtual.cpp.
 * @author: Juan Marcos Gutierrez Ramos.
 * @date: MAY-18-2009.
 * @desc: Contiene la clase JugadorVirtual.
 */
#include<vector>
#include "Carta.h"
#include "Jugador.h"
#include "JugadorVirtual.h"
#include "Mano.h"
using namespace std;
//TODO:CR: La sentencia using namespace std; puede ir despues de los include
//REvisado y se movio el using namespace std;

JUGADA JugadorVirtual::jugar(int& apuestaActual,vector<Carta*> cartasEnMesa,int& apuestaDeEsteJugador,int tipoJuego,int cantidadJugadores){
    JUGADA jugada;
    switch(tipoJuego){
        case 0: jugada = jugarPreFlop(apuestaActual,cartasEnMesa,apuestaDeEsteJugador,cantidadJugadores); break;
        case 1: break;
        case 2: break;
        case 3: break;
        }
    return jugada;
    }

//0=RETIRARSE, 1=PASAR, 2=APOSTAR, 3=ALLIN, 4=ERROR.
JUGADA JugadorVirtual::jugarPreFlop(int& apuestaActual,vector<Carta*> cartasEnMesa,int& apuestaDeEsteJugador,int cantidadJugadores){
       //las variables sn distintas al del moduoo de mano
       // se necesitan mas probabilidades, para que de ese modo el programa sea valido
    Mano auxMano = getMano();
    float proba = auxMano.calcularProbabilidadPreflop(cantidadJugadores);
    if(proba < 25.0){
             //retirarse no esta declarada como una sentencia
        retirarse();
        return RETIRARSE;
        }
    if(proba < 50.0){
        if(pasar(apuestaActual,apuestaDeEsteJugador)){
            return PASAR;
            }
        }
    //....
    //....
    //caracteristicas del jugador en el preflop todavia por definir.
    //se llenara con mas casos determinados por la probabilidad, cuando se acabe mano se continuara.
    //Tengo que interpretar de mejor manera las probabilidades para determinar los movimientos del JugadorVirtual.
    //....
    }
//...
